example多用dual來舉例, dual是oracle本身內建的一張單行單列的table, 可以用來加工創造成自己要的table
select
A as B, A1 as BB, A3 (A: 欄位, 要查詢的項目, 可搭配as將欄位重新命名B)from
T1, T2, T3 (T: Table, 資料來源的table name, 可搭配where語句串接多張table)where
P (P: 條件式, 可搭配 and or 同時考量多種條件);
(結尾可加分號, 代表一次query結束, 可by分號讓同一段SQL QUERY出多個結果)保留字為程式語言中已經被用來定義為關鍵字的單詞, 使用者在
命名
欄位的時候要記得避開保留字
, 避免SQL 因為無法識別而ERROR
.
-- in為關鍵字, 所以不可再將欄位名稱名為in, 若真的想使用, 在oracle中可以加入雙引號做區隔
select V."in"
from(
select 1 as "in"
from dual
)V
-- 1. concat: 串接字串
select c1, c2, concat(c1, c2) c3
from(
select 'a' C1, 123 C2
from dual
)
> output: a 123 a123
-- 2. instr: 搜尋欄位中c2在c1的index位置
select c1, c2, instr(c1, c2) as c3
from(
select 'abc' C1, 'bc' C2
from dual
)
> output: abc bc 2
-- 3. length: 計算字串長度
select c1, c2, length(c1) c3
from(
select 'a' C1, 123 C2
from dual
)
> output: a 123 1
-- 4. upper/lower: 轉大寫/轉小寫, 比對字元前建議都先轉好大小寫在比對防呆
select c1, upper(c1), lower(c1)
from(
select 'aBGDhy5rg' C1
from dual
)
> output: aBGDhy5rg ABGDHY5RG abgdhy5rg
-- 5. replace: 取代字串
select replace(c1, c2, c3)
from(
select 'I like apples.' as C1, 'like' as C2, 'hate' as C3
from dual
)
> output: I hate apples.
-- 6. trim/ltrim/rtrim: 用於移除空白
select length(c1), length(trim(c1)), length(ltrim(c1))
from(
select ' hey ' as C1
from dual
)
> output: 15 3 9